pandas逐行/列 遍历Dataframe的三种方式

您所在的位置:网站首页 pandas dataframe 复制行 pandas逐行/列 遍历Dataframe的三种方式

pandas逐行/列 遍历Dataframe的三种方式

2024-06-21 18:05| 来源: 网络整理| 查看: 265

目录

一、pandas.DataFrame.iterrows

二、pandas.DataFrame.itertuples

三、pandas.DataFrame.items

pandas 逐行/逐列 遍历数据有以下三种方法:

一、pandas.DataFrame.iterrows

DataFrame.iterrows()                                                                                                            [source]

按行遍历,将DataFrame的每一行迭代为(index, Series)对。

输出:index:label或label元组

                      行的索引。对于一个MultiIndex则需要一个元组。

           data:Series

                      行的数据作为Series。

注意

因为 interrows为每一行返回一个 Series,所以它不会跨行保留数据类型(对于数据帧,数据类型跨列保留)。例如,

>>> df = pd.DataFrame([[1, 1.5]], columns=['int', 'float']) >>> row = next(df.iterrows())[1] >>> row int 1.0 float 1.5 Name: 0, dtype: float64 >>> print(row['int'].dtype) float64 >>> print(df['int'].dtype) int64

要在遍历行时保留数据类型,最好使用itertuples() ,该函数会返回依据values的命名元组,并且通常比iterrows()效率高。

你永远不应该修改你正在迭代的东西。这不能保证在所有情况下都有效。根据数据类型,迭代器返回的是数据的副本而不是数据视图,写入它不会有任何效果。

二、pandas.DataFrame.itertuples

DataFrame.itertuples(index=True, name='Pandas')                                                             [source]

按行遍历,将DataFrame的每一行迭代为元组。

参数:index:bool, 缺省为 True

                如果为真,则将索引作为元组的第一个元素返回。

           name:str 或 None, 缺省为 “Pandas”

                对于命名元组返回其名称,或 对返回常规元组返回None。

返回:iterator

                为 DataFrame 中的每一行迭代命名元组的对象,第一个字段可能是索引,

                后面的字段是列的value值。

注意

如果列名是无效的 Python 标识符、重复的或以下划线开头,它们将被重命名为位置名称。 

例子

 

>>> df = pd.DataFrame({'num_legs': [4, 2], 'num_wings': [0, 2]}, ... index=['dog', 'hawk']) >>> df num_legs num_wings dog 4 0 hawk 2 2 >>> for row in df.itertuples(): ... print(row) ... Pandas(Index='dog', num_legs=4, num_wings=0) Pandas(Index='hawk', num_legs=2, num_wings=2)

通过将索引参数设置为 False,我们可以删除作为元组的第一个元素的 Index:

>>> for row in df.itertuples(index=False): ... print(row) ... Pandas(num_legs=4, num_wings=0) Pandas(num_legs=2, num_wings=2)

通过设置name参数,我们可以为生成的命名元组设置自定义名称:

>>> for row in df.itertuples(name='Animal'): ... print(row) ... Animal(Index='dog', num_legs=4, num_wings=0) Animal(Index='hawk', num_legs=2, num_wings=2) 三、pandas.DataFrame.items

DataFrame.items()                                                                                                                [source]

按列遍历,将DataFrame的每一列迭代为(列名, Series)对

输入:标签:object

                正在迭代的 DataFrame 的列名。

           内容:Series

                属于每个标签的列条目,作为Series。

例子

df = pd.DataFrame({'species': ['bear', 'bear', 'marsupial'], ... 'population': [1864, 22000, 80000]}, ... index=['panda', 'polar', 'koala']) >>> df species population panda bear 1864 polar bear 22000 koala marsupial 80000 >>> for label, content in df.items(): ... print(f'label: {label}') ... print(f'content: {content}', sep='\n') ... label: species content: panda bear polar bear koala marsupial Name: species, dtype: object label: population content: panda 1864 polar 22000 koala 80000 Name: population, dtype: int64



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3